//propertyIsEnumerable 用于检查 指定的属性是否可枚举
 
let obj = {
    a:1,
    b:2
}
//keys获取一个对象可枚举属性组成的数组
console.log(Object.keys(obj));//[ 'a', 'b' ]
for(let key in obj){
    console.log(key)
}
console.log(obj.propertyIsEnumerable('a'))
console.log(obj.propertyIsEnumerable('b'))
console.log(obj.propertyIsEnumerable('c'))
console.log(obj.propertyIsEnumerable('toString'))
//什么属性不能枚举呢?
//从原型继承过来的属性不能枚举
//在定义属性的时候设置为不可枚举
//通过Object.defineProperty静态方法给obj对象定义c属性,通过属性描述器(property Descriptor)来定义

Object.defineProperty(obj,'c',{
    value:3,
    enumerable:true
});
console.log(Object.keys(obj));


let obj1 = {
    name:'1'
}
let obj2= {
    age:2
}
obj1.__proto__ = obj2;
//Object.setPrototypeOf(obj1,obj2)
console.log(obj1.age)